<?php
/**
 * Project: AIGC
 * Author: moufer <moufer@163.com>
 * Date: 2024/8/31 17:21
 */

namespace module\user\library\interface;

interface FavoriteInterface
{
    /**
     * 获取收藏对象ID
     * @return int
     */
    public function sourceId(): int;

    /**
     * 获取收藏对象类型
     * @return string
     */
    public function sourceType(): string;

    /**
     * 获取收藏对象字段，用于列表页展示
     * @return array
     */
    public function sourceFields(): array;

    /**
     * 更新收藏数量
     * @param int $num 更新数量(负值表示减少)
     * @return void
     */
    public function updateFavoriteCount(int $num): void;
}